package com.wave.wavesystem.business.service;

import com.mybatisflex.core.paginate.Page;
import com.wave.wavesystem.business.pojo.dto.userRelation.UserDeptDTO;
import com.wave.wavesystem.business.pojo.entity.DeptEntity;
import com.wave.wavesystem.business.pojo.entity.UserDeptEntity;
import com.wave.wavesystem.business.pojo.entity.UserEntity;
import com.wave.wavesystem.business.pojo.vo.DeptVO;
import com.wave.wavesystem.core.service.WaveService;
import wave.common.pojo.entity.Query;

import java.util.List;

/**
* @author 夕下风波
* @date 2025-02-02
* @description 用户-部门关联表 业务层接口
*/
public interface UserDeptService extends WaveService<UserDeptEntity> {

    boolean batchSave(UserDeptDTO userDepts);

    List<DeptVO> userDepts(Long userId);

    Page<UserEntity> deptUsersPage(Long deptId, Query query);

    List<DeptEntity> userDeptsList(Long userId);

    Boolean save(UserDeptDTO userDepts);

    List<UserEntity> notInDeptUser(Long deptId);

    Boolean kickOutDept(UserDeptDTO userDepts);

}
